/*
 * @Author: SeonHu
 * @Date: 2025-09-16 14:44:19
 * @LastEditors: SeonHu
 * @LastEditTime: 2025-09-23 15:14:05
 * @FilePath: \bg-vben\src\api\message\admin\template\model\index.ts
 * @Description:
 * Copyright © 2020-2025 SANQING Corporation, All rights reserved.
 */
import { MessageLevelEnum } from '@/enums/messageLevelEnum';
import { MessageSendWayEnum } from '@/enums/messageSendWayEnum';
import { MessageTypeEnum } from '@/enums/messageTypeEnum';

/** 输入DTO：模板消息 */
export interface TemplateMessageInputDto {
  /** 编号 */
  Id: bigint | string;

  /** 消息图标 */
  Icon?: null | string;
  /** 消息类型 */
  MessageType: MessageTypeEnum;
  /** 消息级别 */
  MessageLevel: MessageLevelEnum;
  /** 标题 */
  Title?: null | string;
  /** 内容 */
  Content?: null | string;
  /** 数据体 */
  Payload: any;

  /** 发送方式集合 */
  SendWays: MessageSendWayEnum[];
  /** 发送至用户集合 */
  ToUsers: string[];
  /** 发送至组织机构集合 */
  ToOrganizations: string[];
  /** 发送至角色集合 */
  ToRoles: string[];

  /** Cron表达式 */
  CronExpression?: null | string;
  /** 是否启用 */
  Enabled: boolean;

  /** 存储天数(0-365,0表示永久存储) */
  StorageDays: number;

  /** 数据版本 */
  DataVersion: bigint | string;
}

/** 输出DTO：模板消息 */
export interface TemplateMessageOutputDto extends TemplateMessageInputDto {
  /** 方法名 */
  Method?: null | string;

  /** 下次发送时间 */
  NextSendTime?: Date | null;

  /** 创建者编号 */
  CreatorId?: bigint | null | string;
  /** 创建时间 */
  CreatedTime: Date;

  /** 更新者编号 */
  UpdaterId?: bigint | null | string;
  /** 更新时间 */
  UpdatedTime?: Date | null;
}
